/*****************************************************************************
 * Copyright (C) Stacy Curl. All rights reserved.                            *
 * ------------------------------------------------------------------------- *
 * The software in this package is published under the terms of the BSD      *
 * style license a copy of which has been included with this distribution in *
 * the LICENSE.txt file.                                                     *
 *****************************************************************************/
package picounit.mocker;

import java.util.List;
import java.util.Set;

public interface EventCapturer {
	// TODO: Figure out a way to get the reason into a void method expectation
	void byCalling();

	BooleanConsequenceCapturer byCalling(boolean ignore);
	ByteConsequenceCapturer byCalling(byte ignore);
	CharConsequenceCapturer byCalling(char ignore);
	DoubleConsequenceCapturer byCalling(double ignore);
	FloatConsequenceCapturer byCalling(float ignore);
	IntConsequenceCapturer byCalling(int ignore);
	LongConsequenceCapturer byCalling(long ignore);
	ShortConsequenceCapturer byCalling(short ignore);
	StringConsequenceCapturer byCalling(String ignore);
	<T> ConsequenceCapturer<T> byCalling(T ignore);
	<T> ListConsequenceCapturer<T> byCalling(List<T> ignore);
	<T> SetConsequenceCapturer<T> byCalling(Set<T> ignore);

	BooleanArrayConsequenceCapturer byCalling(boolean ... ignore);
	ByteArrayConsequenceCapturer byCalling(byte ... ignore);
	CharArrayConsequenceCapturer byCalling(char ... ignore);
	DoubleArrayConsequenceCapturer byCalling(double ... ignore);
	FloatArrayConsequenceCapturer byCalling(float ... ignore);
	IntArrayConsequenceCapturer byCalling(int ... ignore);
	LongArrayConsequenceCapturer byCalling(long ... ignore);
	ShortArrayConsequenceCapturer byCalling(short ... ignore);
	StringArrayConsequenceCapturer byCalling(String ... ignore);
	<T> ArrayConsequenceCapturer<T> byCalling(T ... ignore);
}